<?php

namespace helper;

use think\facade\Db;
use think\facade\Request;

class Arr extends \think\helper\Arr
{
    /**
     * 对一个数组，并将其转换为标准格式.
     * @param array $data 需要转换成标准格式的数组
     * @param bool $assoc 如果TRUE，$data将被转换为关联数组 .
     * @return array
     */
    public static function normalize(array $data, $assoc = true): array
    {
        if (empty($data)) {
            return $data;
        }
        $keys = array_keys($data);
        $count = count($keys);
        $numeric = true;

        if (!$assoc) {
            for ($i = 0; $i < $count; $i++) {
                if (!is_int($keys[$i])) {
                    $numeric = false;
                    break;
                }
            }
        }
        if (!$numeric || $assoc) {
            $new_list = [];
            for ($i = 0; $i < $count; $i++) {
                if (is_int($keys[$i])) {
                    $new_list[$data[$keys[$i]]] = null;
                } else {
                    $new_list[$keys[$i]] = $data[$keys[$i]];
                }
            }
            $data = $new_list;
        }
        return $data;
    }

}
